home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
qbbs
/
xflc_009.zip
/
XFLC.DOC
< prev
next >
Wrap
Text File
|
1992-06-12
|
33KB
|
839 lines
┌─────────────────────────────────┐
│ ▒▌ ▒▌ ▒▒▒▒▒▌ ▒▌ ▒▒▒▌ │
│ ▒▌ ▒▌ ▒▌ ▒▌ ▒▌ ▒▌ │
│ ▒▌▒▌ ▒▌ ▒▌ ▒▌ │
│ ▒▌ ▒▒▒▒▌ ▒▌ ▒▌ │
│ ▒▌▒▌ ▒▌ ▒▌ ▒▌ │
│ ▒▌ ▒▌ ▒▌ ▒▌ ▒▌ ▒▌ │
│ ▒▌ ▒▌ ▒▌ ▒▒▒▒▒▌ ▒▒▒▌ │
└─────────────────────────────────┘
XFLC - Extended File List Creator
Version 1.00
The All- and Newfiles List Generator
for RemoteAccess and SuperBBS
(c) 1992 M.Schnitkemper
Postbox 7462
W-4400 Münster
┌────────────────────────────────────────────────────────────────────────────┐
│ Introduction │
└────────────────────────────────────────────────────────────────────────────┘
Hi folks,
First of all I should say that I hate to write documentations. On the
result you got only a short description of XFLC along with the program as I
assume that you are an experienced system operator and know how to install
any external door at your BBS.
This application is designed to run under RemoteAccess or SuperBBS as a
all-/newfiles lister for those who are running a CDROM drive together with
EFT. XFLC is a subset of RAFF - the Online File Find for RA and SBBS.
XFLC provides you with the following features:
■ Easy installation and configuration
■ Creates an all- and optional a newfiles list
■ Adopt orphans to FILES.BBS
■ Remove missing files from FILES.BBS
■ Full support for read/only media such as CDROM disk
■ Includes processing of the special FILES.BBS format, introduced by the EFT
filetransfer manager
■ Selective filelist creation, depending on level and control statements
■ SysOp configurable control- and supportfiles
■ Self definable and different supportfiles for every filearea
■ Configurable linewrapping of filedescriptions
■ Includes optional transfertime calculation in filedescriptions
■ Fileoverview report
■ Calls your favourite ArcUtility for packing the filelist(s)
■ Automatic retrieval of filedescriptions from archives to add into FILES.BBS
(i.e. FILE_ID.DIZ)
■ Selfdetecting graphic card: Switch to 43 line in EGA- and to 50 lines in
VGA mode.
■ Multiline/Multitask and network aware
■ The usage of XFLC is (still) free of charge!
┌────────────────────────────────────────────────────────────────────────────┐
│ The Installation │
└────────────────────────────────────────────────────────────────────────────┘
The installation is quite easy. First you have to place "XFLC.EXE" and
create a controlfile named "XFLC.CTL" into your system directory. Note that
your environment variable "RA" (SBBS: "SBBS") must point to this path.
Refer the section "The Control File" for detailed informations on the
controlfile statements.
For different purposes you can pass an additional filespec on the commandline
to tell XFLC the path and name of the controlfile to youse. The default will
be "XFLC.CTL".
If you are working with a R/O medium like a CDROM drive, you may be change
your filearea configuration, depending on the usage of the EFT styled
FILES.nnn. If you prefer the standard handling, supported by RA/SBBS you must
change nothing. XFLC will self detect the associated FILES.nnn in the
listpath, defined in "CONFIG.RA" (SBBS: Entry in "FLSEARCH.BBS"). Since the
EFT styled FILES.nnn contains additional informations such as path to the
filearea, date and size of the file, there is no need to access the CDROM
drive. In this case you -must- change the path entry in "FILES.RA" (SBBS:
"FLSEARCH.BBS") to "~nnn", where the new introduced leading character "~"
indicates that this is not a normal path and nnn is the number of the
filearea.There is no other way to tell XFLC the path of the current
filearea. Example: "~150" means that the listfile for area 150 is
"FILES.150" and resides in the common listpath. Warning: You should not
define a real path with a leading "~", if you have already one rename it
before using this option. For a full description of FILES.nnn refer your EFT
documentation.
┌────────────────────────────────────────────────────────────────────────────┐
│ The Control File │
└────────────────────────────────────────────────────────────────────────────┘
As already told, a controlfile is needed for a proper operation. In the
archive you will find a sample of a controlfile. It is a plain ascii file and
can be edit with any text editor.
The controlfile contains control statements. Some statements need additional
informations in a parameter (such as path- and filenames), the most are
default by a value if the parameter is missing.
Syntax conventions: The keyword of the statement must begin at column 1 of
the line. The parameter must be separated at least by one <SPACE> from the
keyword. Comment lines can be spreaded around the controlfile, if they begin
with a "%" sign as the first character or with leading space(s).
This is a description in alphabetic order of all statements used so far:
----------------------------------------------------------------------------
Statement: Adopt [Text]
Parameter: Text to be placed as the description for adopted files
Default : File adopted by XFLC v1.00 - description follows...
Range : ---
Purpose : If you used this statement, a second pass will be performed to
search the path for orphans who are not in FILES.BBS. If any file
is found, it will be adopted to FILES.BBS with the given comment.
Due to a second run over all fileareas, this will be increase the
performance time. CDROM fileareas are not searched for orphans.
If you set the "Orphan" statement (see later), all adopted files
will be logged. All "FILES.*" such as FILES.BBS or FILES.BAK will
be excluded from the Adopt feature. If you omit this statement, no
search for orphans will be performed.
----------------------------------------------------------------------------
Statement: AllFiles [d:[path\[filename[.ext]]]]
Parameter: Drive, path and name where the allfiles list should be written
Default : ALLFILES.TXT
Range : ---
Purpose : Tells XFLC the name of the allfiles list
----------------------------------------------------------------------------
Statement: AreaHead [d:[path\[filename]]]
Parameter: Drive, path and name (WITHOUT extension) of the header file
Default : AREAHEAD
Range : ---
Purpose : With this statement you tell XFLC to use a user defined area
header. The optional parameter specify the path and name of the
area file(s). To use this feature you have to create up to 200
different files named "AREAHEAD.nnn" where nnn indicates the number
of the filearea. I.e.: "AREAHEAD.001" will be placed on top of the
filearea no.1 in your list, "AREAHEAD.002" on top of filearea
no.2, "AREAHEAD.003" on top of... (hope you got it!). The
predefined file with the extension ".000" will be placed on the
top of all areas, if no special ".nnn" file was found. That means:
XFLC first scans for a associated file to the filearea, if not
succesfull it scans for a common ".000" file, if this search
failed again, the hard coded header of XFLC will be used. Six
controlcodes comes along with the AreaHead feature to create a
really free style area header. This is specialy for the common
areaheader, where one header stands for all fileareas.
These are the controlcodes available so far:
CtlCode Length Just Function
------------ ------- ------- -------------------------------
^AL Fix 3 Left Number of filearea
^AR Fix 3 Right Number of filearea
^AV Var. Left Number of filearea
^FL Fix 5 Left Files in filearea
^FR Fix 5 Right Files in filearea
^FV Var. Left Files in filearea
^LL Fix 5 Left Access Security Level
^LR Fix 5 Right Access Security Level
^LV Var. Left Access Security Level
^NL Fix 50 Left Name of the filearea
^NV Var. Left Name of the filearea
^SBL Fix 12 Left Size of filearea in Bytes
^SBR Fix 12 Right Size of filearea in Bytes
^SBV Var. Left Size of filearea in Bytes
^SKL Fix 9 Left Size of filearea in KBytes
^SKR Fix 9 Right Size of filearea in KBytes
^SKV Var. Left Size of filearea in KBytes
^SML Fix 6 Left Size of filearea in MBytes
^SMR Fix 6 Right Size of filearea in MBytes
^SMV Var. Left Size of filearea in MBytes
There are two different type of controlcodes, those with fixed and
other with variable lengths. The controlcodes with fixed lengths
are designed for graphic displays (see the example in the archive)
to align the display to right side. The variable typecode
translate the controlcode to the real length, all trailing or
leading spaces are stripped away. The controlcodes are
case-sensitive, only uppercase codes are currently supported. If
you type a lowercase letter, the controlcode would not be
translated.
Important note: Never use a fileextension when use a parameter for
the "AreaHead" statement. XFLC will expand the filename with the
right extension, depending on the area currently processed. If
you omit this statement, the built-in hardcoded areaheader will be
used.
----------------------------------------------------------------------------
Statement: BBS RA|SBBS
Parameter: Either "RA" or "SBBS"
Default : ---
Range : ---
Purpose : If you used the "SysPath" statement instaed of (or in addtion to)
the environment variable, you must also use this statement to tell
XFLC the type of the installation. A warning will be issued if you
use this statement without the "SysPath" statement (see below). I
recommend to use the environment variable "RA" or "SBBS",
depending on your installation. In this case, XFLC will
self-detect the type of BBS you are operating and this statement
can be omitted. Note that currently only RemoteAccess and SuperBBS
systems are supported.
----------------------------------------------------------------------------
Statement: Comment c[c...]
Parameter: Character(s) to indicate a line as a comment
Default : ---
Range : ---
Purpose : Usualy you should start your commentline with a character which is
invalid for filenames, such as a leading <SPACE>, ".", ":" or "+".
If you wish to use another character (like a "*" or "-") to start
a comment, you must add this statement. You can specify one or
more characters. If the first character of a FILES.BBS line
matches one of these characters, the line will be treated as a
comment, inserted in your ALLFILES list as it is and kept
unchanged in your FILES.BBS. See also the description of the
"RemMiss" statement later in this documentation.
----------------------------------------------------------------------------
Statement: Crap Filename.Ext
Parameter: Files to be erased
Default : ---
Range : 16 statements
Purpose : This one will help you to keep your filearea(s) tidy! If a file of
the processed filearea matches to one of the filespecifications
given by the "Crap" statement, this file will be removed (erased,
deleted, killed!) from the area. Wildcards are allowed. Anyway,
you can (but should not) use the "*.*" filespec. Use this
statement with care. Up to 16 statements are possible. Note that
this statement will only erase the files. If you wish to clean up
your FILES.BBS in the same way, you must also enable the
"RemMiss" statement (see below).
----------------------------------------------------------------------------
Statement: DIZFile [Filename.Ext]
Parameter: Filename to search for
Default : FILE_ID.DIZ
Range : ---
Purpose : This is a great one: If you have set the "Adopt" statement (see
above) XFLC will now first try to extract the filedescription from
the archive. If the file, specified with this statement was found,
the contents will be inserted in FILES.BBS as the filedescription.
Any CarriageReturn/LineFeed character will be removed and added as
one line. If the search failed, the message given by the "Adopt"
statement will be used. The currently supported archive extensions
are ARC, ARJ, LZH and ZIP. The corresponding utility must be in
the default directory or the DOS path.
If you omit this statement or the parameter, "FILE_ID.DIZ" will be
used by default.
----------------------------------------------------------------------------
Statement: First [nnn]
Parameter: Number of the first filearea to list
Default : 1
Range : 1 to 200
Purpose : Tells XFLC the number of the first filearea to list
----------------------------------------------------------------------------
Statement: Footer [d:[path\[filename[.ext]]]]
Parameter: Drive, path and name of the footer file
Default : LISTFOOT.TXT
Range : ---
Purpose : Places the contents of the file as a footer at the bottom of your
all- and newfiles list. If you omit this statement, no footer will
be created.
----------------------------------------------------------------------------
Statement: FullError
Parameter: ---
Default : ---
Range : ---
Purpose : Since the system always stop after a runtime error and waits for a
keystroke, I replaced the errorhandler by an own, simple
procedure. This procedure displays only the number of the error
and terminates the application. For some reasons it should be
usefull to get more detailed informations of the error and the
address where it happened. Only in this case, you should set the
"FullError" statement and enable QB's error handling. Refer the
section "Error Messages" for a short description of the error
codes. If you omit this statement, the own error handler is
active.
----------------------------------------------------------------------------
Statement: Header [d:[path\[filename[.ext]]]]
Parameter: Drive, path and name of the header file
Default : LISTHEAD.TXT
Range : ---
Purpose : Places the contents of the file as a header on the top of your
all- and newfiles list. If you omit this statement, no header will
be created.
----------------------------------------------------------------------------
Statement: Indent [nn]
Parameter: Number of column to start decription
Default : 33
Range : ---
Purpose : This statement is useful if you used already the "Wrap" statement
(see below) and your filedescriptions has leading download
counters. This statement will place the 2nd and following line(s)
of a filedescription at the column given by the value of this
statement. If you omit this statement or leave out the parameter,
the following line(s) are placed at column 33 (means no visible
action...)
----------------------------------------------------------------------------
Statement: Last [nnn]
Parameter: Number of the last filearea to list
Default : 1
Range : 1 to 200
Purpose : Tells XFLC the number of the last filearea to list. Only fileareas
who covered the range from "First" to "Last" will be processed,
disregarding of a used "Level", "Show" or "Skip" statement (see
later).
----------------------------------------------------------------------------
Statement: Level [nnnnn]
Parameter: Number of the level of the filearea to list
Default : 0
Range : 32000
Purpose : Only fileareas with the level or below, will be processed.
This allows you to exclude areas they are only accessible by
high(er) level users. If you omit this statement or the parameter,
all areas will be listed.
----------------------------------------------------------------------------
Statement: MarkLast [nnn]
Parameter: Number of the level of the filearea to list
Default : 14
Range : ---
Purpose : All files with a filedate on or before the amount of
days, specified with this statement will indicate in the
mainlist with a "*" and will be written into the newfiles
list, if the "NewFile" statement was set. If you omit this
statement, a newfileslist for the last 14 days will be created.
----------------------------------------------------------------------------
Statement: MaxFiles nnnn
Parameter: Maximum number of files expected in one filearea
Default : 5000
Range : 1 to 5000
Purpose : To adopt files as fast as possible, two reference tables are
build. The size of the tables are 5000 entry each, this takes
about 130k of your main memory. If you are in lack with memory,
you can decrease this value to the maximum number of files your
biggest filearea contains. If you have a filearea with more than
5000 entries, you must split it into suitable parts or you cannot
use the "Adopt" option. If your areasize is out the range of the
"MaxFiles" parameter, a runtime error 9 will occur. If you omit
this statement, a maximum number of 5000 files is assumed.
----------------------------------------------------------------------------
Statement: Missing [Text]
Parameter: Text to be displayed
Default : *** On Streamer ***
Range : 19 characters
Purpose : Files who are currently offline are overtaken into the
allfileslist. Since the file is not present on the drive, the text
given with the optional parameter will be diplayed in the filelist
instead of the filedate and -size. The text should not exceed more
than 19 characters, longer literals will be truncated to this
size. If you omit this statement, missing file are not listed.
----------------------------------------------------------------------------
Statement: NewFiles [d:[path\[filename[.ext]]]]
Parameter: Drive, path and name where the newfiles list should be written
Default : NEWFILES.TXT
Range : ---
Purpose : Tells XFLC the name of the newfiles list. No newfile list will
be created if you omit this or the "MarkLast" statement. There
will be all files listed with a filedate on or before the amount
of days, specified with the "MarkLast" statement (see later).
----------------------------------------------------------------------------
Statement: Orphans [d:[path\[filename[.ext]]]]
Parameter: Name of the file where the orphan log should be placed to
Default : ORPHANS.LOG
Range : ---
Purpose : This works only in conjunction with the "Adopt" statement. If any
orphan was found and adopted to FILES.BBS, this will be logged
into the file specified with this statement. The log will be
opened in append mode.
----------------------------------------------------------------------------
Statement: PackA Commandline
Parameter: Valid DOS commandline
Default : ---
Range : 127 characters
Purpose : With this statement you can issue a DOS command to run i.e.
an archive utility. The contents of the commandline will be
passed unchecked to DOS' commandline processor. The external
command must be present either in the current path or the search
path. If you omit the statement or the parameter, no action will
be taken.
----------------------------------------------------------------------------
Statement: PackN Commandline
Parameter: Valid DOS commandline
Default : ---
Range : 127 characters
Purpose : Same as PackA, offers you a second way to pack your newfiles
list into a different archive. If you omit the statement or the
parameter, no action will be taken.
----------------------------------------------------------------------------
Statement: Progress [cc]
Parameter: Background- and foreground character for the graphic bar.
Default : Percentage bar (Bg) and "█" (Fg)
Range : ---
Purpose : This option is only for nasty sysops who cannot wait until XFLC
finished work. Anyway, a progressmeter will be display at line
five of the screen to show the progress of the currently processed
filearea while creating the filelist or adopting files. With the
optional parameter you can define the style of the bar.
This works best at five o'clock in the morning - don't miss it...
If you omit this statement no progressmeter will be displayed and
increase performance speed of around 10%.
----------------------------------------------------------------------------
Statement: RemMiss
Parameter: ---
Default : ---
Range : ---
Purpose : All missing files will be removed from FILES.BBS and will be
completely new re-written. If you enable this statement the
performance will be slow down slightly. Keep an eye of any
comment lines of your FILES.BBS: If the first 12 characters of a
line seems to be a valid filename this line will be removed from
FILES.BBS since no file could be found on the drive. You should
start your commentline with a character which is invalid for
filenames, such as a leading <SPACE>, ".", ":" or "+". Refer your
DOS manual for the restrictions how to create valid filenames. If
you wish to use any other character, you must specify this
character using the "Comment" statement (see above). Since no
files can be remove from CDROM's, this statement does have no
effect on CDROM fileareas. A conflicting situation will be occur
if you use this statement together with the "Missing" statement
(see earlier) and is therefore disallowed. FILES.BBS will be
completely removed in case of empty fileareas.
----------------------------------------------------------------------------
Statement: Show nnn
Parameter: Number of the the filearea to include to the filelist
Default : ---
Range : 1 to 200
Purpose : The filearea specified with this statement will be in verey way
included to the list, regardless of the "Level". Only one
statement, either "Skip" or "Show" can be used at one time for a
filearea. Up to 200 statements, each for every area are possible.
----------------------------------------------------------------------------
Statement: Skip nnn
Parameter: Number of the the filearea to exclude from the filelist
Default : ---
Range : 1 to 200
Purpose : The filearea specified with this statement will be in every way
excluded from the list, even if a previous or later "Level"
statement allows access to this area. Only one statement, either
"Skip" or "Show" can be used at one time for a filearea. Up to 200
statements, each for every area are possible. If you omit this
statement or leave out the parameter, no action will be taken.
----------------------------------------------------------------------------
Statement: Stats [AllFiles|d:[path\[filename[.ext]]]]
Parameter: Name of the file where the overview report should be placed to
Default : STATSREP.TXT
Range : ---
Purpose : XFLC gives you the opportunity to create a fileoverview report of
all fileareas with the amount of files and size. There are three
choices where to place the status report: If you used no
parameter, the report will be written to the default file in the
current directory, if you used a absolute filespecification, the
report will be written out into the specified file or if you used
the reserved word "AllFiles", the statusreport will be placed at
the end of the allfiles list, just between the last listed area
and the footer (if used). If you omit this statement, no status
report will be written.
----------------------------------------------------------------------------
Statement: SysPath [d:\path\]
Parameter: Path where your systemfiles resides
Default : Value specified in the environment variable RA/SBBS
Range : ---
Purpose : This statement defines the systempath. Use it only if you haven't
set or want to override the (BBS depending) environment variable
RA/SBBS.
----------------------------------------------------------------------------
Statement: Wrap [nn]
Parameter: Amount of characters before wrap
Default : 46
Range : 1 to 255
Purpose : Line wrapping of filedescriptions will be enabled with this
statement. The line will be wrapped near the column specified with
the parameter. Lines are only wrapped on a position where a
<SPACE> character appears. If no <SPACE> was found at the given
length, the line will be wrapped at the next possible position or
kept unwrapped. If you omit this statement, no line wrapping will
be performed.
----------------------------------------------------------------------------
Statement: XferTime
Parameter: ---
Default : ---
Range : ---
Purpose : Calculates the approximate transfer time for the most popular
speeds of 2400 bps and 9600 bps. The calculation is based on a
protocol effiency of 98%, this should be a good average value for
a protocol like ZModem, MPt, BiModem or HS/Link. If an old
fashioned protocol like XModem is used, the transfertime will be
raised. On the other hand, for a error correcting link like MNP or
LAP/M the transfertime will be decreased of around 17%. This
should only help your users to calculate the transfertime in
advance and cannot be correct at any time. If you omit this
statement, the transfertime will not be calculated and added to
the filedescription.
┌────────────────────────────────────────────────────────────────────────────┐
│ Acknowlegements │
└────────────────────────────────────────────────────────────────────────────┘
XFLC was developed and runs successfuly under MS-DOS v5.00_D, SuperBBS v1.16
and Remote Access v1.10. XFLC is written in Microsoft's QuickBASIC v4.5.
Against virus attack and hackers, the executable file comes in a packed and
scrambled version to you, using Tinyprog v3.3.
The directory access and the date calculations procedures are linked from the
PBClone library.
As usual, special thanks to Mike of "The Wizards Inn II" who got also the
idea of this file list utility.
┌────────────────────────────────────────────────────────────────────────────┐
│ Error Messages │
└────────────────────────────────────────────────────────────────────────────┘
A disadvantage of QuickBASIC is the circumstance that in case of a runtime
error the system displays the errormessage, the address -and- is waiting for
a keystroke. This is very unuseful for unattended applications. For this
reason I replaced the error messages by an own handling procedure. This
procedure only displays the errorcode and terminates the program. The
following chart is a short but complete summary of all possible error codes.
If you set the "FullError" statement in the controlfile, the own errorhandler
will be disabled and QB's error handling is active again. Note that you
should never see some codes like "Syntax error" or "Out of paper" from this
application...
Code Description
------- -------------------------------------------------------
2 Syntax Error
3 RETURN without GOSUB
4 Out of data
5 Illegal function call
6 Overflow
7 Out of memory
9 Sunscript out of range
10 Duplicate definition
11 Division by zero
13 Type mismatch
14 Out of string space
15 String too long
16 String formula too complex
19 No RESUME
20 RESUME without error
24 Device timeout
25 Device fault
27 Out of paper
50 FIELD overflow
51 Internal Error
52 Bad file number
53 File not found
54 Bad file mode
55 File already open
57 Device I/O-Error
58 File already exist
61 Disk full
62 Input past end
63 Bad record number
64 Bad file name
67 Too many files
68 Device unavailable
69 Communication buffer overflow
70 Disk write protect
71 Disk not ready
72 Disk media error
74 Rename across disk
75 Path/File access error
76 Path not found
┌────────────────────────────────────────────────────────────────────────────┐
│ Trademarks and Copyrights │
└────────────────────────────────────────────────────────────────────────────┘
Product: Copyright of:
------------------------------ ---------------------------------------------
EFT - Enhanced Filetransfer Michael Raus II
MS-DOS Microsoft Corporation
PBClone Thomas G. Hanlin III
Remote Access Andrew Milner, Continental Software
SuperBBS Aki Antman & Risto Virkkala
TinyProg Tranzoa Corporation
┌────────────────────────────────────────────────────────────────────────────┐
│ History Revision │
└────────────────────────────────────────────────────────────────────────────┘
Date Ver. Changes since last release
--------------- ------- -----------------------------------------------------
xx.xx.xx v1.00 ■ First public release of XFLC
┌────────────────────────────────────────────────────────────────────────────┐
│ Disclaimer and Warranty │
└────────────────────────────────────────────────────────────────────────────┘
THIS PROGRAM IS LICENSED "AS IS", NO WARRANTY IS GIVEN OR IMPLIED. IN USING
THE PROGRAM YOU AGREE THAT THE AUTHORS WILL NOT BE HELD RESPONSIBLE FOR ANY
DAMAGE OR LOSS OF DATA CAUSED DIRECTLY OR INDIRECTLY BY THE USE (OR MISUSE)
OF XFLC.
I make no warranty of any kind, express or implied, including without
limitation, any warranties of merchantability and/or fitness for a particular
purpose. I shall not be liable for any damages, whether direct, indirect,
special or consequential arising from a failure of this program to operate in
the manner desired by the user. I shall not be liable for any damage to data
or property which may be caused directly or indirectly by use of the program.
XFLC IS FREEWARE: I hereby declare the whole material as public domain (the
copyright is still with me!), no charge or fee maybe given to me or anyone
else for this application. Use it on your own risk so long as you want. Give
it away to everyone who need it.
*** END OF DOCUMENT ***